/*
  学习目标：使用React实现路由监听与切换组件
*/
import React from 'react';

export default class App extends React.Component {
  // 1. 声明一个状态保存路径
  state = {
    currentHash: '',
  };

  componentDidMount() {
    //  2. 监听路由变化，存储状态
    window.addEventListener('hashchange', () => {
      this.setState({
        currentHash: window.location.hash.slice(1),
      });
    });
  }

  render() {
    const { currentHash } = this.state;
    return (
      <div>
        <h1>app组件</h1>
        <ul>
          <li>
            <a href="#/home">首页</a>
          </li>
          <li>
            <a href="#/my">我的音乐</a>
          </li>
          <li>
            <a href="#/friend">我的朋友</a>
          </li>
        </ul>
        {/* 3. 逻辑判断 */}
        {currentHash === '/home' && <Home></Home>}
        {currentHash === '/my' && <MyMusic></MyMusic>}
        {currentHash === '/friend' && <Friend></Friend>}
      </div>
    );
  }
}

function Home(params) {
  return <h1>我是首页组件</h1>;
}

function MyMusic(params) {
  return <h1>我是我的音乐件</h1>;
}

function Friend(params) {
  return <h1>我是朋友组件</h1>;
}
